Shift
位置パラメーターをnだけ左に移動するものです。デフォルトは、1です。
マイナス指定 n= -1 などを指定すると 終了ステータスは、!=0になる。
位置パラメーターが、オーバーフロウすると 終了ステータスは、!=0になる。正常終了の場合 終了ステータスは、=0となります。
shift n
例)
1=$1
2=$2
3=$3
............
を shift 2 すると、
1=$3
2=$4
...........
となる。
プログラム例)
引数の判定を繰り返し行う、引数Bの場合そのオブション引数を持っている処理をする。
while [ -n "$(echo $1 | grep '-')" ]; do
case $1 in
-a) option A 処理;;
-b) option B 処理;;
$2はオプション引数
shift ;;
-c) option C 処理;;
*) echo '指定以外の引数が使われています。'
exit 1
esac
shift
done